﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;

//class Date {
//    friend istream& operator>>(istream& in, Date& d);
//public:
//    // 获取某年某月的天数
//    int GetMonthDay(int year, int month);
//
//    void Print() const {
//        if(_month < 10 && _day < 10)
//            cout << _year << "-" << "0" << _month << "-" << "0" << _day << endl;
//        if(_month < 10 && _day >= 10)
//            cout << _year << "-" << "0" << _month << "-" << _day << endl;
//        if(_month >= 10 && _day < 10)
//            cout << _year << "-" << _month << "-" << "0" << _day << endl;
//        if(_month > 10 && _day > 10)
//            cout << _year << "-" << _month << "-" << _day << endl;
//    }
//
//    // 全缺省的构造函数
//    Date(int year, int month, int day);
//
//    // 赋值运算符重载
//    Date& operator=(const Date& d);
//
//    // 日期+=天数
//    Date& operator+=(int day);
//
//    // 日期+天数
//    Date operator+(int day);
//
//    // 前置++
//    Date& operator++();
//
//    // 后置++
//    Date operator++(int);
//
//    // 打印日期
//    Date PrintDate(const Date& d, int y, int n);
//
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//
//int Date::GetMonthDay(int year, int month) {
//    static int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//    if (month == 2 && ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)))
//        arr[2] = 29;
//    return arr[month];
//}
//
//Date::Date(int year, int month, int day) {
//    _year = year;
//    _month = month;
//    _day = day;
//}
//
//Date& Date::operator=(const Date& d) {
//    _day = d._day;
//    _month = d._month;
//    _year = d._year;
//
//    return *this;
//}
//
//Date Date::PrintDate(const Date& d,int y, int n) {
//    while (n--) {
//        ++*this;
//    }
//    return *this;
//}
//
//istream& operator>>(istream& in, Date& d) {
//    int year, month, day;
//    in >> year >> month >> day;
//    d._year = year;
//    d._month = month;
//    d._day = day;
//
//    return in;
//}
//
//Date& Date::operator+=(int day) {
//    _day += day;
//    while (_day > GetMonthDay(_year, _month)) {
//        _day -= GetMonthDay(_year, _month);
//        _month++;
//        if (_month == 13) {
//            _year++;
//            _month = 1;
//        }
//    }
//    return *this;
//}
//
//Date& Date::operator++() {
//    *this += 1;
//    return *this;
//}
//
//int main() {
//    int y, n;
//    while (cin >> y >> n) {
//        Date Ret(y,1,0);
//        Ret.PrintDate(Ret, y, n);
//        Ret.Print();
//    }
//}

//class AA
//{
//public:
//	AA* abc() const;
//};
//
//AA* abc()
//{
//	return this;
//}
//
//int main()
//{
//	AA x;
//	x.abc();
//
//	return 0;
//}
//
//﻿class A
//{
//public:
//  A(int a)
//	:_a1(a)
//	,_a2(_a1)
//  {}
//
//  void Print()
//  {
//	cout << _a1 << " " << _a2 << endl;
//  }
//private:
//  int _a2;
//  int _a1;
//};
//
//int main()
//{
//	A aa(1);
//	aa.Print();
//
//	return 0;
//}

//class A
//{
//public:
//	A(int a)
//		:_a1(a)
//		,_a2(_a1)
//	{}
//
//	void Print()
//	{
//		cout << _a1 << " " << _a2 << endl;
//	}
//
//private:
//	int _a2;
//	int _a1;
//};
//
//int main()
//{
//	A aa(1);
//	aa.Print();
//
//	return 0;
//}

//class Date {
//    friend istream& operator>>(istream& in, Date& d);
//public:
//    // 获取某年某月的天数
//    int GetMonthDay(int year, int month);
//
//    void Print() const {
//        if (_month < 10 && _day < 10)
//            cout << _year << "-" << "0" << _month << "-" << "0" << _day << endl;
//        if (_month < 10 && _day >= 10)
//            cout << _year << "-" << "0" << _month << "-" << _day << endl;
//        if (_month >= 10 && _day < 10)
//            cout << _year << "-" << _month << "-" << "0" << _day << endl;
//        if (_month >= 10 && _day > 10)
//            cout << _year << "-" << _month << "-" << _day << endl;
//    }
//
//
//    // 全缺省的构造函数
//    Date(int year, int month, int day);
//
//    // 赋值运算符重载
//    Date& operator=(const Date& d);
//
//    // 日期+=天数
//    Date& operator+=(int day);
//
//    // 日期+天数
//    Date operator+(int day);
//
//    // 前置++
//    Date& operator++();
//
//    // 后置++
//    Date operator++(int);
//
//    // 打印日期
//    Date PrintDate(const Date& d, int y, int m, int day, int n);
//
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//
//int Date::GetMonthDay(int year, int month) {
//    static int arr[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//    if (month == 2 && ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)))
//        arr[2] = 29;
//    return arr[month];
//}
//
//Date::Date(int year, int month, int day) {
//    _year = year;
//    _month = month;
//    _day = day;
//}
//
//Date& Date::operator=(const Date& d) {
//    _day = d._day;
//    _month = d._month;
//    _year = d._year;
//
//    return *this;
//}
//
//Date Date::PrintDate(const Date& d, int y, int m, int day, int n) {
//    while (n--) {
//        ++* this;
//    }
//    return *this;
//}
//
//istream& operator>>(istream& in, Date& d) {
//    int year, month, day;
//    in >> year >> month >> day;
//    d._year = year;
//    d._month = month;
//    d._day = day;
//
//    return in;
//}
//
//Date& Date::operator+=(int day) {
//    _day += day;
//    while (_day > GetMonthDay(_year, _month)) {
//        _day -= GetMonthDay(_year, _month);
//        _month++;
//        if (_month == 13) {
//            _year++;
//            _month = 1;
//        }
//    }
//    return *this;
//}
//
//Date& Date::operator++() {
//    *this += 1;
//    return *this;
//}
//
//int main() {
//    int M = 0;
//    int y, m, d, n;
//    cin >> M;
//    while (M--) {
//        cin >> y >> m >> d >> n;
//        Date Ret(y, m, d);
//        Ret.PrintDate(Ret, y, m, d, n);
//        Ret.Print();
//    }
//}